package com.wavesplatform.database.rocksdb

import com.google.common.primitives.Shorts

enum KeyTag {
  case Version,
    Height,
    Score,
    HeightOf,
    WavesBalance,
    WavesBalanceHistory,
    AssetBalanceHistory,
    AssetBalance,
    AssetDetailsHistory,
    AssetDetails,
    LeaseBalanceHistory,
    LeaseBalance,
    LeaseDetailsHistory,
    LeaseDetails,
    FilledVolumeAndFeeHistory,
    FilledVolumeAndFee,
    ChangedAddresses,
    ChangedAssetBalances,
    ChangedDataKeys,
    AddressIdOfAlias,
    LastAddressId,
    AddressId,
    IdToAddress,
    AddressScriptHistory,
    AddressScript,
    ApprovedFeatures,
    ActivatedFeatures,
    DataHistory,
    Data,
    SponsorshipHistory,
    Sponsorship,
    CarryFee,
    AssetScriptHistory,
    AssetScript,
    SafeRollbackHeight,
    BlockInfoAtHeight,
    NthTransactionInfoAtHeight,
    AddressTransactionSeqNr,
    AddressTransactionHeightTypeAndNums,
    TransactionMetaById,
    BlockTransactionsFee,
    InvokeScriptResult,
    BlockReward,
    WavesAmount,
    HitSource,
    DisabledAliases,
    AssetStaticInfo,
    NftCount,
    NftPossession,
    IssuedAssets,
    UpdatedAssets,
    SponsoredAssets,
    StateHash,
    EthereumTransactionMeta

  def prefixBytes: Array[Byte] = Shorts.toByteArray(ordinal.toShort)
}
